﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QuanLyKhachSan.QuanLyKhachSanBUS;

namespace QuanLyKhachSan.UserControls
{
    public partial class LapPhieuThuePhong : UserControl
    {
        public LapPhieuThuePhong()
        {
            InitializeComponent();
        }
        private QuanLyKhachSanBUS.Service1SoapClient ws = new Service1SoapClient();
        private void LapPhieuThuePhong_Load(object sender, EventArgs e)
        {
            txtDonGia.ReadOnly = true;
            txtSoNgayThue.ReadOnly = true;
            LoadCombobox();
            DateTime today = System.DateTime.Today;
            dtiNgayBatDau.Text = today.ToString();
            dgLoaiKhach.DataSource = ws.LayDanhSachLoaiKhach();
            dgLoaiKhach.DisplayMember = "TenLoaiKhach";
            dgLoaiKhach.ValueMember = "MaLoaiKhach";
            
        }

        private void dtiNgayKetThuc_ValueChanged(object sender, EventArgs e)
        {
            if (dtiNgayKetThuc.Text != "")
            {
                if (dtiNgayKetThuc.Value < dtiNgayBatDau.Value)
                {
                    MessageBox.Show("Thời gian bạn chọn ko hợp lệ");
                    txtSoNgayThue.Text = "";
                    return;
                }
            }
            TimeSpan kc = dtiNgayKetThuc.Value - dtiNgayBatDau.Value;
            string[] n = kc.ToString().Split('.');
            int songay = int.Parse(n[0]);
            if (n.Length == 2 && songay >= 0)
            {
                txtSoNgayThue.Text = songay.ToString();
            }
        }
        protected void LoadCombobox()
        {
            cbTenLoaiPhong.DataSource = ws.LayDanhSachLoaiPhong();
            cbTenLoaiPhong.DisplayMember = "TenLoaiPhong";
            cbTenLoaiPhong.ValueMember = "MaLoaiPhong";
        }

        private void cbTenLoaiPhong_SelectedValueChanged(object sender, EventArgs e)
        {
            if (cbTenLoaiPhong.SelectedIndex > 0)
            {
                int maLoaiPhong = int.Parse(cbTenLoaiPhong.SelectedValue.ToString());
                cbTenPhong.DataSource = ws.LapLayDanhSachPhongTheoMaLoai(maLoaiPhong);
                cbTenPhong.DisplayMember = "TenPhong";
                cbTenPhong.ValueMember = "MaPhong";
                //Don gia
                LoaiPhongDTO lphong = ws.LayLoaiPhongTheoMa(maLoaiPhong);
                txtDonGia.Text = lphong.DonGia.ToString();
            }

        }

        private void btnLapPhieuThue_Click(object sender, EventArgs e)
        {
            if (int.Parse(cbTenLoaiPhong.SelectedValue.ToString()) < 0 || int.Parse(cbTenPhong.SelectedValue.ToString()) < 0
                || int.Parse(txtSoNgayThue.Text.ToString()) <= 0 )
            {
                MessageBox.Show("Phải điền đầy đủ thông tin!!!");
            }
            else
            {
                int n = dgvKhachThue.RowCount;
                if (n < 2)
                    MessageBox.Show("Phải điền thông tin khách thuê!!!");
                else
                {
                    bool co = true;
                    string ex="";
                    KhachHangDTO[] arrkh;
                    arrkh = new KhachHangDTO[n-1];
                    for (int i = 0; i < n - 1; i++)
                    {
                        KhachHangDTO kh = new KhachHangDTO();
                        kh.MaKhachHang = -1;
                       
                       if (dgvKhachThue.Rows[i].Cells[1].Value == null)
                        {
                            co = false;
                            ex = "Chưa điền tên khách hàng!!!";
                            i = n;
                        }
                        else
                        {
                            kh.TenKhachHang = dgvKhachThue.Rows[i].Cells[1].Value.ToString(); //Ten Khach Hang
                            if (dgvKhachThue.Rows[i].Cells[3].Value == null)
                            {
                                co = false;
                                ex = "Chưa điền CMND khách hàng!!!";
                                i = n;
                            }
                            else
                            {
                                kh.CMND = dgvKhachThue.Rows[i].Cells[3].Value.ToString(); //CMND
                                if (dgvKhachThue.Rows[i].Cells[4].Value == null)
                                {
                                    co = false;
                                    ex = "Chưa điền địa chỉ khách hàng!!!";
                                    i = n;
                                }
                                else
                                {
                                    kh.DiaChi = dgvKhachThue.Rows[i].Cells[4].Value.ToString();//DiaChi

                                    kh.MaLoaiKhach = int.Parse(dgvKhachThue.Rows[i].Cells[2].Value.ToString()); //Ma Loai Khach
                                    kh.TinhTrang = true;
                                    arrkh[i] = kh;
                                }
                            }
                        }
                    }
                    if (!co)
                        MessageBox.Show(ex);
                    else
                    {
                        PhieuThuePhongDTO pthue = new PhieuThuePhongDTO();
                        pthue.MaPhong = int.Parse(cbTenPhong.SelectedValue.ToString());
                        pthue.NgayBatDau = DateTime.Parse(dtiNgayBatDau.Value.ToString());
                        pthue.NgayKetThuc = DateTime.Parse(dtiNgayKetThuc.Value.ToString());
                        pthue.SoNgayThue = int.Parse(txtSoNgayThue.Text.ToString());
                        pthue.DonGiaThue = float.Parse(txtDonGia.Text.ToString());
                        pthue.TinhTrang = true;
                        bool flag = ws.ThemPhieuThuePhong(pthue, arrkh);
                        if (flag)
                        {
                            cbTenLoaiPhong.Enabled = false;
                            cbTenPhong.Enabled = false;
                            dtiNgayBatDau.Enabled = false;
                            dtiNgayKetThuc.Enabled = false;
                            dgvKhachThue.Enabled = false;
                            MessageBox.Show("Lập Phiếu Thuê Phòng Thành Công!!!");
                        }
                        else
                            MessageBox.Show("Lập Phiếu Thuê Phòng That bai!!!");
                    }
                }
            }
        }

        private void dtiNgayBatDau_ValueChanged(object sender, EventArgs e)
        {
            if (dtiNgayKetThuc.Text != "")
            {
                if (dtiNgayKetThuc.Value < dtiNgayBatDau.Value)
                {
                    MessageBox.Show("Thời gian bạn chọn ko hợp lệ");
                    txtSoNgayThue.Text = "";
                    return;
                }
                TimeSpan kc = dtiNgayKetThuc.Value - dtiNgayBatDau.Value;
                string[] n = kc.ToString().Split('.');
                int songay = int.Parse(n[0]);
                if (n.Length == 2 && songay >= 0)
                {
                    txtSoNgayThue.Text = songay.ToString();
                }
            }
        }

        private void dgvKhachThue_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            int dong = e.RowIndex;
            if(dong >= 0)
                dgvKhachThue.Rows[dong].Cells[0].Value = (dong+1).ToString();
        }

        private void dgvKhachThue_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
        {
            int dong = e.RowIndex;
            dgvKhachThue.Rows[dong].Cells[0].Value = (dong+1).ToString();
        }

        private void btn_PhieuThueMoi_Click(object sender, EventArgs e)
        {
            cbTenLoaiPhong.Enabled = true;
            cbTenPhong.Enabled = true;
            dtiNgayBatDau.Enabled = true;
            dtiNgayKetThuc.Enabled = true;
            dgvKhachThue.Enabled = true;
            LoadCombobox();
            cbTenPhong.Text = "";
            txtDonGia.Text = "";
            txtSoNgayThue.Text = "";
            dtiNgayKetThuc.Text = "";
            DateTime today = System.DateTime.Today;
            dtiNgayBatDau.Text = today.ToString();
        }



    }
}
